TypeScript中的类

您所在的位置:网站首页 阮一峰 corejs TypeScript中的类

TypeScript中的类

#TypeScript中的类| 来源: 网络整理| 查看: 265

1. 类的基本语法

在 TypeScript 中,使用 class 关键字来定义类。以下是一个简单的类的示例:

class Person { private name: string; age: number; constructor(name: string, age: number) { this.name = name; this.age = age; } greet() { console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`); } }

在上面的例子中,Person 类具有一个私有成员 name 和一个公共成员 age,并且定义了一个构造函数 constructor 和一个 greet 方法。

2. 成员修饰符

TypeScript 提供了几种成员修饰符,用于控制类成员的可访问性:

public:默认修饰符,表示成员可以在类的内部和外部访问。private:表示成员只能在类的内部访问。protected:表示成员可以在类的内部和派生类中访问。

例如,我们可以将 name 成员改为 private,并在 greet 方法中访问它:

class Person { private name: string; age: number; constructor(name: string, age: number) { this.name = name; this.age = age; } greet() { console.log(`Hello, my name is ${this.name} and I'm ${this.age} years old.`); } } 3. 继承

TypeScript 支持类的继承,通过使用 extends 关键字来实现。子类可以继承父类的属性和方法,并且可以覆盖父类的方法或添加新的方法。

以下是一个继承的示例:

class Student extends Person { studentId: string; constructor(name: string, age: number, studentId: string) { super(name, age); this.studentId = studentId; } study() { console.log(`${this.name} is studying.`); } }

在上面的例子中,Student 类继承自 Person 类,并添加了一个新的成员 studentId 和一个 study 方法。

4. 多态

多态是面向对象编程的一个重要概念,它允许不同的对象对同一个方法做出不同的响应。在 TypeScript

中,我们可以使用类的继承和方法的重写来实现多态。

以下是一个多态的示例:

class Animal { name: string; constructor(name: string) { this.name = name; } makeSound() { console.log("Generic animal sound."); } } class Dog extends Animal { makeSound() { console.log("Woof!"); } } class Cat extends Animal { makeSound() { console.log("Meow!"); } } function playWithAnimal(animal: Animal) { animal.makeSound(); } const dog = new Dog("Buddy"); const cat = new Cat("Whiskers"); playWithAnimal(dog); // 输出 "Woof!" playWithAnimal(cat); // 输出 "Meow!"

在上面的例子中,Animal 类定义了一个 makeSound 方法,而 Dog 和 Cat 类分别重写了这个方法。通过将不同的对象传递给 playWithAnimal 函数,我们可以实现多态,使得每个对象都发出不同的声音。

5. 提升代码可维护性和可扩展性

使用类的概念可以提高代码的可维护性和可扩展性。通过将相关的数据和方法封装在一个类中,可以提高代码的组织性和可读性。类的继承和多态让我们能够构建更具灵活性的代码结构,使得代码更容易扩展和重用。

此外,TypeScript 还提供了接口(interface)的概念,可以进一步定义类的结构和行为。接口可以用于约束类的实现,使得代码更加规范和可靠。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3